package cn.stylefeng.guns.modular.rw.entity;

import cn.hutool.core.util.IdUtil;
import cn.stylefeng.guns.base.auth.context.LoginContextHolder;
import cn.stylefeng.guns.base.auth.model.LoginUser;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 描述：基本信息配置表
 * 作者：chenhuiyan
 * 时间：2020-04-30
 */
@Data
@TableName("rw_info_set")
public class InfoSet implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 编号
     */
    @TableId(value = "id")
    private String id;

    /**
     * 顶部官网名称
     */
    @TableField(value = "top_name")
    private String topName;

    /**
     * 顶部联系电话
     */
    @TableField(value = "top_phone")
    private String topPhone;

    /**
     * 底部地址
     */
    @TableField(value = "bm_address")
    private String bmAddress;

    /**
     * 底部电话
     */
    @TableField(value = "bm_phone")
    private String bmPhone;

    /**
     * 底部邮箱
     */
    @TableField(value = "bm_email")
    private String bmEmail;

    /**
     * 底部备案号
     */
    @TableField(value = "bm_base")
    private String bmBase;

    /**
     * 底部公司名称
     */
    @TableField(value = "bm_company_name")
    private String bmCompanyName;

    /**
     * 底部开发公司名称
     */
    @TableField(value = "bm_deve_name")
    private String bmDeveName;

    /**
     * 创建时间
     */
    @TableField(value = "create_date")
    private Date createDate;

    /**
     * 创建者
     */
    @TableField(value = "create_by")
    private String createBy;

    /**
     * 更新时间
     */
    @TableField(value = "update_date")
    private Date updateDate;

    /**
     * 更新者
     */
    @TableField(value = "update_by")
    private String updateBy;

    /**
     * 添加数据时调用该方法生成
     */
    public void preInsert(){
        LoginUser loginUser = LoginContextHolder.getContext().getUser();
        this.setId(IdUtil.simpleUUID());
        this.setCreateDate(new Date());
        this.setUpdateDate(new Date());
        if(loginUser != null){
            this.setCreateBy(loginUser.getId() + "");
            this.setUpdateBy(loginUser.getId() + "");
        }
    }

    /**
     * 更新数据时调用该方法生成
     */
    public void preUpdate(){
        LoginUser loginUser = LoginContextHolder.getContext().getUser();
        this.setUpdateDate(new Date());
        if(loginUser != null){
            this.setUpdateBy(loginUser.getId() + "");
        }
    }

}
